MixpanelのAPIを使ってPostmanからイベントデータを送ってみる
ミックスパネラーの國崎です。
今回はMixpanelのAPIを使って「PostmanからMixpanelにイベントデータを送信する」をやってみたので、そちらのやり方をお伝えします。
前提条件
今回は以下条件がある中での手順紹介となります。
- Mixpanelのプロジェクト作成済
- Mixpanelのサービスアカウント作成済
- Postmanでワークスペースまで作成済
また今回使うMixpanelのAPIは「INGESTION API」になります。
基本Mixpanelで取得するデータはSDKを通じてユーザーのイベントデータをレポートに反映していくという流れですが、INGESTION APIを使えば「SDK以外からのイベントデータ取り込み」を行うことが可能となります。
イベントデータの送信にあたっては「Import Events」「Track Events」の2パターンがあるのですが、今回は「Import Events」でやりました。
このパターンの違いについては以下ドキュメントでも案内がありますので、詳細はこちらで確認ください。
やり方
Mixpanelドキュメント
まず以下Mixpanelのドキュメントを開きます。
ページ内のGuidesで、イベントデータを送信したいproject_idを入力します。
次に右上画面のPythonを選択しAUTHENTICATIONにサービスアカウントのusernameとpasswordを入力します。
以下の画面に表示されるテキストをコピーして、テキストエディタとかに貼っておきます。
Postman
続いてPostmanを開きます。
ワークスペースは作成済みの前提ですので、そのワークスペース内で新しいCollectionsを作成します。
先ほどテキストエディタに貼りつけた「URL」「Content-Type」「Content-Encoding」「authorization」をそれぞれ入力します。
- URL…POSTにしてURL貼る
- Content-Type…Headersに貼る
- authorization…Headersに貼る
- accept…Headersに貼る
Bodyに送信したいイベントをjson形式で入力します。
送信にあたり、以下項目は必須となります。
- event
- properties
- time(エポック秒に変換)
- distinct_id
- $insert_id
$insert_idは重複排除のためのIDとなり、(event、time、distinct_id、$insert_id) の値が同じイベントは1つしかクエリに表示されません。
そのため$insert_idには重複しない値を入れる必要があります。
今回は以下のjsonを送ってみます。
[ {"event": "Login", "properties": {"time": 1679560498,"distinct_id": "91304156-kunisaki-4673-a237-623d1129c801","$insert_id": "29fc2962-6d9c-kunisaki-95ad-95b84f09b9e4","Referred by": "family","URL": "mixpanel.com/signup"}}, {"event": "visit", "properties": {"time": 1679560498,"distinct_id": "91304156-kunisaki-4673-a237-623d1129c801","$insert_id": "29fc2962-6d9c-kunisaki-95ad-95b84f09b9e4","Item": "Pan", "Amount": 5.0}} ]
Mixpanel
Mixpanelのダッシュボードでデータが送信されているかを確認します。
Eventを見ると、「Login」「visit」のデータが送信されていました。
こんな感じでMixpanelのINGESTION APIを使うとPostmanからもイベントデータの送信ができるようになります。
まとめ
以上、MixpanelのAPIとPostmanを使ったイベントデータの送信手順でした。
SDKで取得できていないデータをMixpanelに送信したい時などに活用できるかと思います。
他にもドキュメントのGuidesで直接イベントの値を入力することでMixpanelのダッシュボードに送信するやり方もあります。
詳細はドキュメントをご参照ください。